/*
 * Copyright (c) 2022，公司名称
 * All rights reserved.
 * 文件名称：high_init.c
 * 摘要：高边初始化
 * 当前版本：V1.0.0,WCD,2023/1/10,初版
 * 历史版本：Vx.x.x，编写者/修改者，修改时间，修改内容（重大发布时，总结重点变更内容）
 */
#include "high_includes.h"
/*↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓应用层数据定义开始↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓*/
#if 1

#endif
/*↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑应用层数据定义结束↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑*/
/*
 * 函数介绍: mcu外设初始化
 * 参数:
 * 返回值: {*}
 * 备注:
 */
void high_system_init(void)
{
	high_clock_init();		  // 时钟初始化
	high_stim_init();		  // 定时器初始化
	high_gpio_init();		  // GPIO初始化
	high_tim_PWMOutputInit(); // PWM初始化
	high_adc_pwm_init();	  // adc pwm 初始化
	// high_adc_sw_init();    //adc sw 初始化
	high_uart_init(); // 串口初始化
	//high_wdg_init();  //看门狗初始化
}

/*↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓应用层函数定义开始↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓*/
#if 1
/*
 * 函数介绍: 高边数据初始化
 * 参数:
 * 返回值: {*}
 * 备注:
 */
void high_data_init(void)
{
    /* ADC 采样原始数据 */
    memset(&high_ADC_OrgiData, 0u, sizeof(high_ADC_ORIG_DATA_struct));
    high_uart_data_init();
}
/*
 * 函数介绍: LED闪烁
 * 参数:
 * 返回值: {*}
 * 备注:
 */
void high_LED_Run(void)
{
	GPIO_TogglePinOutput(PORT_D, GPIO_15);
}
/*
 * 函数介绍: 喂外部看门狗
 * 参数:
 * 返回值: {*}
 * 备注:看门狗低电平激活
 */
void kick_extern_wdt(void)
{
    static uint8_t count = 0;
#ifdef EXTERN_WDT_DEBUG
    static uint32_t wdt_Tick_cnt = 0u;
    static uint8_t test_count = 0u;
    if (!test_count && !wdt_Tick_cnt)
    {
        wdt_Tick_cnt = Get1MsTickVal();
    }
    else
    { ;
    }

    if ( 1 == Get1MsTickInterval(wdt_Tick_cnt,1000) && test_count <= 3) /* 1S */
    {
        test_count++;
        wdt_Tick_cnt = Get1MsTickVal(); /* 获取计数值 */
		GPIO_TogglePinOutput(PORT_A,GPIO_2);
    }
    else
    { ;
    }
#else
	GPIO_TogglePinOutput(PORT_A,GPIO_2);
#endif
}
#endif
/*↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑应用层函数定义结束↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑*/